<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 打印原型对象的函数
      function printPrototype(obj) {
        console.log(` ${typeof obj}的原型是:`, Object.getPrototypeOf(obj));
      }

      // 测试不同的数据类型
      printPrototype({}); // 对象 (Object)
      printPrototype([]); // 数组 (Array)
      printPrototype(function () {}); // 函数 (Function)
      printPrototype(new Date()); // 日期 (Date)
      printPrototype(/abc/); // 正则表达式 (RegExp)
      printPrototype(new Map()); // Map
      printPrototype(new Set()); // Set
      printPrototype(42); // 原始数值 (Number)
      printPrototype("hello"); // 原始字符串 (String)
      printPrototype(true); // 原始布尔值 (Boolean)
      printPrototype(Symbol("sym")); // 原始符号 (Symbol)
      // printPrototype(null); // null (无法获取原型)
      // printPrototype(undefined); // undefined (无法获取原型)

      // 特别处理 null 和 undefined
      // console.log("Prototype of null:", Object.getPrototypeOf(null)); // 应为 null
      // console.log("Prototype of undefined:", Object.getPrototypeOf(undefined)); // 应为 undefined
    </script>
  </body>
</html>
